package com.res.repository;

import java.util.List;

import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.jpa.repository.Query;

import com.res.entity.Register;

public interface RegisterRepository extends JpaRepository<Register, Integer>,JpaSpecificationExecutor<Register>{

	@Query(value="select * from  register where  sid=?1 and tid=?2 and status =0",nativeQuery=true)
	Register getRegisterById(Integer stuid,Integer tid);

	

	/**
	 * 计算某台电脑使用的次数,因为结果可能返回多条数据，所以就用list集合
	 */
	@Query(value=" select count(*) from register re INNER JOIN computer c \r\n" + 
			"on re.cid=c.cid INNER JOIN readroom r on r.rid=c.cid\r\n" + 
			"GROUP BY re.cid ",nativeQuery=true)
	List<Integer>num();
	/**
	 * 查询统计表的所有数据根据下面这个sql查询
	 * 用这个原生sql的原因就是等会在StaticController里面判断使用
	 * 因为StaticController中的count也是这个语句查的 这样不会出现下标越界的情况
	 * 用s.*就是为了得到static表中的所有数据，不然等会StaticController判断可能会有问题
	 * @return
	 */
	@Query(value=" select re.*,c.cid,count(*) from register re INNER JOIN computer c \r\n" + 
			"on re.cid=c.cid INNER JOIN readroom r on r.rid=c.cid\r\n" + 
			"GROUP BY re.cid  ",nativeQuery=true)
	List<Register> all();
}
